perm filename IL.DOC[IL,LSP] blob sn#128304 filedate 1974-11-06 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	*5 NOV 1974	ILISP IMPROVEMENTS	DWP
C00006 ENDMK
C⊗;
*5 NOV 1974	ILISP IMPROVEMENTS	DWP

	→→IMPROVEMENTS IN ERROR HANDLING AND DEBUGGING:

  Break Package

	When a break is entered, TYPE-AHEAD IS  SAVED and is NOT SEEN
BY  THE BREAK PACKAGE as junk.  When execution  of any non-break
package function is resumed, THE TYPE-AHEAD IS RESTORED to  the input
stream.

   Line Retrieval Feature

	If <ctrl>ALT  is typed  at any  point, the  previous line  of
keyboard  input is saved;  typing <ctrl><meta>ALT at  some later time
retrieves  the  saved  line  into  the  line  editor,   for  possible
modification and re-use.   This feature is disabled when talking to the
break package.

  Error Messages

	When a LISP error message is printed, the portion of the
current input line which has already been read is displayed.  When
reading from a file, this gives some clue as to where the error 
happened.
	When an error occurs during the reading of a file by DSKIN,
the error message is no longer suppressed !



 	→→NEW ILISP FUNCTIONS OF GENERAL(?) INTEREST:

  (SETIGCRLF (CHRVAL X))	
			Resets the char. (normally →) which is
			used to concatenate lines for input and output.
			Returns the CHRVAL of the old char.

  WORDIN	A SUBR of no arguments.  Like TYI, but works only
		when input is from a file, and returns one entire
		word of the file as a 36-bit quantity in AC 1, so
		you had better MAKNUM it immediately !  Do not do
		both WORDIN and TYI to the same input channel !


	→→FEATURES OF USE TO USERS WITH EXTERNAL (FAIL) CODE

	The symbol table has been made less evanescent.  As before,
(LOAD T) loads code into binary program space, and such code is
permanent; (LOAD NIL) places code above the lisp data spaces, and
this code is removed (along with any old I/O buffers) by (EXCISE).
An EXCISE is done at each re-allocation.

	After any kind of LOAD, two kinds of symbols are present:
1) about 4k of LISP interpreter symbols, and 2) whatever symbols
came with the loaded code.  All of these symbols will remain until
either (EXCISE) or (REMSYM) is called:

   (EXCISE) removes the LISP symbols but leaves the others.
   (REMSYM) removes all symbols.

The LISP symbols will  come back whenever any LOAD  is done. (REMSYM)
and (EXCISE) together should always get you back to the core size you
had when you last allocated.

	 The loader now uses the new definition when it finds multiply
defined globals; therefore you can reload a new copy of the same program
(such as RAID, for example) and simply ignore the MUL DEF GLOBAL messages.